package com.molichuxing.framework.utils;

import org.springframework.util.StringUtils;

public class DrivingLicenseUtil {

    private static String [] verificationLicenseArray = {"C","A","B","C1","C2"};

    private static String noPassStrPy = "超分;暂扣;撤销;吊销;注销;扣留;停止使用;锁定;逾期未换证;延期换证;延期换证;逾期未体检;其他;逾期未审验";
    
    private static String noPassStrGzt = "BDEFGUJLMNRZS";
    

    /**
     * 验证返回的是否是不允许通过的字符
     * true 表示通过  false 表示失败
     * @param value
     * @return
     */
    public static boolean validatePassType(String value) {
        if(StringUtils.isEmpty(value)) {
            return false;
        }
        String[] valueArray = value.split(";");
        for(String str : valueArray) {
            if(noPassStrPy.contains(str)) {
                return false;
            }
        }
        return true;
    }
    
    
    /**
     * 验证国政通返回的是否是不允许通过的字符
     * true 表示通过  false 表示失败
     * @param value
     * @return
     */
    public static boolean validatePassTypeGzt(String value) {
        if(StringUtils.isEmpty(value)) {
            return false;
        }
        String[] valueArray = value.split("");
        for(String str : valueArray) {
            if(noPassStrGzt.contains(str)) {
                return false;
            }
        }
        return true;
    }
    
    /**
     * 验证驾驶证
     * @param value
     * @return
     */
    public static boolean verificationDriverLicense(String value) {
    	if(StringUtils.isEmpty(value)) {
    		return false;
    	}
    	value=value.toUpperCase();
        //正则验证是否以C开头后面是字母
        String regex = "^C[a-zA-Z]+$";
        if(value.equals(verificationLicenseArray[0])) {
            return true;
        }
        if((value.startsWith(verificationLicenseArray[1]))||(value.startsWith(verificationLicenseArray[2]))||
                (value.startsWith(verificationLicenseArray[3]))||(value.startsWith(verificationLicenseArray[4]))) {
            return true;
        }
        if(value.matches(regex)) {
            return true;
        }
        return false;
    }
}
